package com.example.demo.controller;


import com.example.demo.entity.admin;
import com.example.demo.entity.apply;
import com.example.demo.model.result;
import com.example.demo.services.*;
import com.github.pagehelper.PageInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/admin")
public class AdminController {

    @Autowired
    private AdminService adminService;

    @Autowired
    private ReportService reportService;


    @Autowired
    private BuyService buyService;


    @Autowired
    private applyService applyService;


    private Logger logger = LoggerFactory.getLogger(AdminController.class);


    @RequestMapping(value = "/login",method = {RequestMethod.GET})
    public result Login(String loginName, String password){
        logger.info("管理员正在进行登录操作");
        admin test=adminService.selectPassword(loginName, password);
        if(test!=null){
            logger.info("用户登录成功,用户名为{}",loginName);
            return result.success(test);
        }else{
            return result.fail("密码或账号错误");
        }
    }


    @RequestMapping(value = "/getReport",method={RequestMethod.GET})
    public result getReport(Integer page,Integer size){
        logger.info("管理员正在查看信息上报情况");
        return result.success(reportService.selectAdmin(page, size));
    }


    /**
     * 管理员查看所有请假信息
     * @param page 第几页
     * @param size 一页多少个
     * @return
     */
    @RequestMapping(value = "/getApply",method ={RequestMethod.GET})
    public result getApply(Integer page, Integer size){
        logger.info("管理员正在查看订单情况");
        return result.success(buyService.pageSelect(page, size));
    }


    /**
     * 管理员 查看  请假 申请 分页
     * @param page 第几页
     * @param size 一页多少 个数据
     * @return
     */
    @RequestMapping(value ="/getApplytow",method ={RequestMethod.GET})
    public result getApplytow(Integer page, Integer size){
        logger.info("管理员正在查看请假信息");
        return result.success(applyService.selectPage(page, size));
    }


    /**
     * 这个是 返回所有到前面 做查询的
     * @return
     */
    @RequestMapping(value ="/firstApplyGet",method ={RequestMethod.GET})
    public result getFirstApplyGet(){
        logger.info("管理员收集所有请假信息");
        return result.success(applyService.students());
    }

    /**
     * 前端 查询 控制层 如果存在  total返回 数目 不为一 不存在 就 会 返回0 然后传输参数 用户不存在
     * @param userId 学号
     * @param page 第几页
     * @param size 一页多少数据
     * @return
     */
    @RequestMapping(value ="/chaxunApply",method ={RequestMethod.GET})
    public result chaxunApply(String userId,Integer page,Integer size){
        logger.info("管理员查询学生请假信息");
        PageInfo pageInfo =applyService.chazhaoUserId(userId, page, size);
        if(pageInfo.getTotal() == 0){
            return result.fail("用户不存在");
        }else{
            return result.success(pageInfo);
        }
    }





}
